#include "convolution.h"

void
convolution2D (int input[5][5], int kernel[3][3], int output[3][3],
               int inputSize, int kernelSize)
{
  // int i, j, m, n;
  // int kernelRadius = kernelSize / 2;
  int outputSize = inputSize - kernelSize + 1;

  for (int i = 0; i < outputSize; i++)
    {
      for (int j = 0; j < outputSize; j++)
        {
          output[i][j] = 0;
        }
    }

  // 在下面通过多重循环实现卷积运算
  for (int oi=0; oi<outputSize; oi++) {
    for (int oj=0; oj<outputSize; oj++) {
      for (int i=0; i<kernelSize; i++) {
        for (int j=0; j<kernelSize; j++) {
          output[oi][oj] += kernel[i][j] * input[oi+i][oj+j];
        }
      }
    }
  }
}